#ifndef __GOLFDDS_SHM__
#define __GOLFDDS_SHM__
#ifdef __cplusplus
extern "C" {
#endif

const char *get_exe_path();                                                                             // return NULL:fail,not NULL:success
Ring_Queue *create_or_attach_shm(const char *path, int shm_index, size_t size, int nmemb, int *pshmid); // return NULL:fail,not NULL:success
Ring_Queue *attach_shm(const char *path, int shm_index, int *pshmid);                                   // return NULL:fail,not NULL:ringqueue pointer,success
int detach_shm(Ring_Queue *ring);                                                                       // return -1:fail,0:success;
int delete_shm(const char *path, int shm_index);                                                        // return -1:fail,0:success;

#ifdef __cplusplus
}
#endif
#endif